// -- cargar XML
miXML = new XML();
// -- ignorar espacios los espacios en blanco que podamos encontrar en el XML
miXML.ignoreWhite = true;
// -- cargo el archivo XML en el objeto XML
miXML.load("menu.xml");
// -- función que comprueba que el archivo ha sido cargado
function comprobar(succes) {
succes ? construirMenu() : trace("Error al parsear XML");
}
// -- llamo a la función que comprueba si se cargó XML
miXML.onLoad = comprobar;
// -- función construir menú
construirMenu = function () {
// -- defino las posiciones _x / _y iniciales del menú
myx = 10;
myy = 10;
// --
for (i=0; i<miXML.firstChild.childNodes.length; i++) {
// -- tomar el valor id de cada nodo encabezado y asignarlo a la variable titulo
titulo = (miXML.firstChild.childNodes[i].attributes.id);
// -- crear los encabezados de menu
this.attachMovie("menu", titulo, i+10);
itemActual = this[titulo];
// -- cambiar el encabezado del menu por el id del nodo 'encabezado'
itemActual.titulo = (titulo);
// separar 2 px cada encabezado
itemActual._y = myy;
myy += (itemActual._height)+2;
// posicionar cada encabezado en la posición _y especificadad inicialmente
itemActual._y = myy;
// -- estado rollOver
itemActual.onRollOver = function() {
// -- mover el cabezal de lectura al fotograma que
// -- tiene la etiqueta 'sobre'
this.gotoAndStop("sobre");
}
itemActual.onPress = function() {
// -- tomar la posición _x del encabezado seleccionado
xPos = this._x;
// -- tomar la posición _y del encabezado seleccionado
yPos = this._y;
// -- generar el submenu asociado al encabezado seleccionado
construirSubmenu(this.titulo, xPos, yPos);
};
itemActual.onRollOut = function() {
// -- mover el cabezal de lectura al fotograma que
// -- tiene la etiqueta 'sobre'
this.gotoAndStop("reposo");
};
}
};
// -- función construir submenú
construirSubmenu = function (subMenuId, xPos, yPos) {
// -- descargar los submenus previamente cargados
// -- usando la función descargarSubmenu()
descargarSubmenu();
// -- creo un array que contendrá cada submenu creado
itemsCargados = new Array();
for (i=0; i<miXML[subMenuId].childNodes.length; i++) {
// -- asigno el atributo de id a la variable titulo al nuevo botón
titulo = (miXML[subMenuId].childNodes[i].attributes.id);
// -- creo una variable para el botón con el atributo link
link = (miXML[subMenuId].childNodes[i].attributes.link);
// -- crear un nuevo clip de pelicula submenu por cada nodo submenu
this.attachMovie("submenu", titulo, i+100);
// -- seleccionar el menu actual
itemActual = this[titulo];
// -- insertar el nombre del item actual en el array itemsCargados
itemsCargados.push(titulo);
// -- asignar el nombre
itemActual.titulo = (titulo);
// -- asignar link
itemActual.link = (link);
// -- mover el submenu a la posición de su encabezado
itemActual._x = xPos;
// -- mover cada clip boton a su posición _y
itemActual._y = yPos += (itemActual._height);
// -- enviar el cabezal al fotograma con la etiqueta sobre
itemActual.onRollOver = function() {
this.gotoAndStop("sobre");
};
// -- devolver el botón a su estado reposo
itemActual.onRollOut = function() {
this.gotoAndStop("reposo");
};
// -- acción al hacer clic
itemActual.onRelease = function() {
getURL(this.link, "_blank");
};
}
};
// -- función que descarga el menú previo (si existe)
descargarSubmenu = function () {
for (i=0; i<itemsCargados.length; i++) {
unloadMovie(itemsCargados[i]);
}
};